package com.yc.fav.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yc.base.biz.BizException;
import com.yc.base.util.Utils;
import com.yc.fav.entity.Fav;
import com.yc.fav.entity.Tag;
import com.yc.fav.entity.TagFav;
import com.yc.fav.mapper.FavMapper;
import com.yc.fav.mapper.TagFavMapper;
import com.yc.fav.mapper.TagMapper;
import com.yc.fav.service.IFavService;
import org.apache.ibatis.session.SqlSession;
//import org.example.util.MyBatisUtils;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author LiaoYan
 * @since 2025-08-16
 */
@Service
public class FavServiceImpl extends ServiceImpl<FavMapper, Fav> implements IFavService {
    @Override
    public void add(Fav fav) throws BizException {

    }

//    @Override
//    public void add(Fav fav) throws BizException {
//
//        // TODO 使用 JSOUP 读取网页内容, 获取 名称, 简介, 分类
//
//        // 判断字段输入
//        Utils.checkEmpty(fav.getName(),"请输入链接名称")
//                .checkEmpty(fav.getAddr(),"地址不能为空")
//                .checkEmpty(fav.getUid(),"用户不能为空")
//                .checkEmpty(fav.getIntro(),"请输入网站简介")
//                .check(fav.getName().length()<2,"网站名至少2个字符")
//                .check(fav.getAddr().startsWith("http")==false, "地址格式不正确");
//
//        SqlSession session = MyBatisUtils.getSession(false);
//        try{
//            FavMapper favMapper = session.getMapper(FavMapper.class);
//            TagMapper tagMapper = session.getMapper(TagMapper.class);
//            TagFavMapper tagFavMapper = session.getMapper(TagFavMapper.class);
//            // 添加 fav 记录
//            favMapper.insert(fav);
//            // 添加 tag 记录
//            if(fav.getTags().trim().length()>0){
//                String[] tagArr = fav.getTags().split("[;,；，]+");
//                for (String tagStr : tagArr) {
//                    LambdaQueryWrapper<Tag> lqw = new LambdaQueryWrapper<>();
//                    lqw.eq(Tag::getName,tagStr);
//                    Tag tag = tagMapper.selectOne(lqw);
//                    // 如果没有该 tag
//                    if( tag == null){
//                        // 创建
//                        tag = new Tag();
//                        tag.setName(tagStr);
//                        tagMapper.insert(tag);
//                    }
//                    // 添加 tag_fav 记录
//                    TagFav tagFav = new TagFav();
//                    tagFav.setFid(fav.getId());
//                    tagFav.setTid(tag.getId());
//                    tagFavMapper.insert(tagFav);
//                }
//            }
//            session.commit();
//        }catch (Exception e){
//            session.rollback();
//            // TODO 发送短信或邮件给管理员
//            throw new BizException("添加链接失败,请联系管理员", e);
//        }finally {
//            session.close();
//        }
//    }
}
